package com.task.core.service;

import java.util.List;

import com.task.common.domain.info.KeyAndValue;
import com.task.core.domain.DeviceInfo;
import com.task.core.dto.request.DeviceRequestDTO;
import com.task.core.dto.response.DeviceAddResponseDTO;
import com.task.core.vo.resp.DeviceDetailRespVo;

/**
 * @author 迪迦.
 * @date 2024/11/4 17:25
 */
public interface DeviceService {

  List<DeviceInfo> getDeviceByPage(DeviceRequestDTO request);

  List<KeyAndValue> getDeviceForOption(DeviceRequestDTO request);

  DeviceAddResponseDTO addDevice(DeviceRequestDTO request);

  void modifyDevice(DeviceRequestDTO request);

  void deleteDevice(String deviceCode, Long userId);

  Integer checkDevice(String deviceCode);

  DeviceInfo getDeviceByCode(String deviceCode);

  DeviceInfo getDeviceByName(String name, Long deptCode);

  List<DeviceInfo> getDeviceListByGroupCodes(List<String> groupCodes);

  List<String> getCanUseEngineCodesByDeviceCode(String deviceCode);

  List<KeyAndValue> getChildDeptByAdminCreate();

  DeviceDetailRespVo getDeviceDetailByCode(String deviceCode);
}
